{{tag>Feisty Gutsy serveur développement vétuste}}

----

====== Installer un serveur d'applications Zope sur Ubuntu ======

===== À propos =====

Actuellement, il existe deux « branches » majeures de Zope : la 2.9.x et la 3.x. 
L'idée étant qu'à la base, Zope 3 devait être une réécriture de zéro de Zope 2 : nouveaux concepts, abandon de certaines lourdeurs de Zope 2, volonté d'être plus « pythonic », etc.

Le projet Zope 3 a commencé il y a plusieurs années déjà et est arrivé à maturité il y a un peu plus d'un an, mais sans compatibilité avec Zope 2. Or Zope 2 possède beaucoup d'extensions : CMS (Plone, CPS), produits de forum, wiki, etc.
Le développement de Zope 2 se poursuit donc et la technologie de Zope 3 est petit à petit rétro-intégrée dans Zope 2. La version 2.10.0-final est sortie le 3 octobre 2006.

Bref aujourd'hui, AMHA, il faut plus voir Zope 3 comme une sorte de laboratoire d'idées de la communauté Zope. Et Zope 2 la version de référence dans laquelle est intégré petit à petit le code de Zope 3 pour une migration en douceur de toutes les extensions déjà développées pour Zope 2.


===== Préambule =====

La présente procédure permet d'installer le serveur d'application Zope sur les distributions Ubuntu 7.04 (Feisty Fawn) et Ubuntu 7.10 (Gutsy Gibbon). Peut-être fonctionne-t-elle aussi sous Uubntu 6.06 LTS (Dapper Drake) (FIXME merci de faire un retour d'expérience ici).



===== Installation =====

Assurez-vous d'avoir pris en compte les dépôts "Universe" dans vos sources de mises à jour. Pour notre grand confort, les [[https://wiki.ubuntu.com/MOTU|MotU]] nous ont préparé un méta-paquet qui permettra d'installer tout le nécessaire à l'aide d'un seul paquet et du jeu des inter-dépendances entre les paquets.

[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **zope** et **python-zodb**.

À la fin de l'installation en mode console, on peut voir un message apparaitre :

  Zope2.10: no instances found.


===== Création d'une instance Zope =====

Exécuter la commande suivante pour créer une instance de Zope.

La commande vous demandera le nom d'un répertoire pour y stocker l'instance de Zope (constituée des ces données, fichiers de configuration, journaux, etc.). Personnellement, je l'ai placée dans ''/var/local/zope''. Si d'aventure un lecteur propose un endroit plus judicieux...

La commande réclame aussi un couple d'authentification utilisateur/motdepasse.

  $ cd /usr/lib/zope2.10/bin
  $ sudo python mkzopeinstance.py

  Please choose a directory in which you'd like to install
  Zope "instance home" files such as database files, configuration
  files, etc.
  
  Directory: /var/local/zope/
  Please choose a username and password for the initial user.
  These will be the credentials you use to initially manage
  your new Zope instance.
  
  Username: Dupont
  Password: ****************
  Verify password: ****************



Notre instance est alors créée comme on peut le constater :
  $ cd /var/local/zope/
  $ ls -l

  total 40
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 bin
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 etc
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Extensions
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 import
  -rw-r--r-- 1 root staff   42 2007-02-26 16:38 inituser
  drwxr-xr-x 3 zope zope  4096 2007-02-26 16:38 lib
  drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 log
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Products
  -rw-r--r-- 1 zope zope   481 2007-02-26 16:38 README.txt
  drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 var



===== Démarrons notre instance Zope =====

<note important>Gutsy et Hardy: Afin que zope utilise python 2.4, il faut le lui spécifier en editant les fichiers ///var/local/zope/bin/runzope// et ///var/local/zope/bin/zopectl// à la ligne 2 comme ceci
PYTHON="/usr/bin/python2.4"
</note>

Nous ajoutons un lien de notre instance dans le dossier //instance// de zope pour le script de démarrage

  sudo ln -s /var/local/zope/ /var/lib/zope2.10/instance/.

Nous pouvons lancer Zope

  sudo /etc/init.d/zope2.10 start


===== Zope is alive! =====

Comme on peut le voir dans un navigateur, notre serveur Zope est opérationnel : [[http://localhost:9673/]]
Comme on peut le remarquer dans l'URL ci-dessus, le port par défaut est 9673 (pensez à ajuster vos [[pare-feu]]x et autres routeurs si vous travaillez sur un serveur distant).


===== Administration du serveur =====

À l'aide des identifiants d'authentification indiqués à la création de l'instance, on peut administrer le serveur à partir de l'URL suivante :
[[http://localhost:9673/manage]]

D'autres commandes sont disponibles dans ''/var/local/zope/bin''.

Des journaux sont disponibles dans ''/var/local/zope/log''.



===== Apache et Zope 2 =====

Nous considérons Apache 2.x installé et fonctionnel, ainsi que Zope 2.

  * Activer les modules :<code>
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
</code>
  * [[:tutoriel:comment_editer_un_fichier|Éditer votre fichier]] de configuration Apache, **/etc/apache2/sites-available/default**
  * Ajouter les lignes suivantes dans un vhost ou en général :<code apacheconf>
UseCanonicalName On # permet d'eviter de taper les / finaux
RewriteEngine On
RewriteRule ^/adressederedirection(.*) http://localhost:9673/VirtualHostBase/http/votreurl.com:80/VirtualHostRoot/_vh_adressederedirection/$1 [L,P]

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
</code>
Cette règle peut paraître abject, mais tous ces paramètres sont utiles à Zope pour bien nous servir. Voici quelques détails:
  * **9673** est le port du serveur Zope.
  * **votreurl.com** est l'adresse de votre site sans le http
  * **80** est le port du serveur apache
  * **_vh_adressederedirection** est propre a Zope et de renvoyer un URL correct, remplacer adressederedirection par le dossier par lequel vous voulez accéder à votre site depuis le web.

**Exemple:**
http://localhost:8080/VirtualHostBase/http/monsite.com:80/VirtualHostRoot/_vh_zope/$1
  * http://monsite.com/zope mènera à notre serveur Zope.
  * http://monsite.com/zope/manage à l'interface d'administration de Zope (ZMI)
  * http://localhost:8080/manage à la ZMI également

Si vous passez par SSL et https vous devez p.ex. le spécifier comme ceci: https/votreurl.com:443


  * Continuons la configuration, avec le proxy d'apache
  * Editer le fichier ///etc/apache2/mods-available/proxy.conf//
  * Tout effacer et remplacer par ceci, toujours en adaptant les valeurs.
<code>
ProxyRequests Off
ProxyVia On
<Proxy *>
        Order deny,allow
        Allow from votreurl.com
        Allow from localhost
</Proxy>
</code>

  * Enfin, recharger la config d'apache
<code>
$ /etc/init.d/apache2 force-reload
</code>


===== Apprendre Zope =====
Voici un lien vers la [[http://www.zope.org/Documentation/ZopeBook/|documentation de Zope]]

Un tutoriel est disponible dans l'instance nouvellement créée et permet de découvrir quelques fonctionnalités de Zope dans son interface d'administration. Pour le débutant, c'est un excellent point de départ, chaudement recommandé !

{{serveur:zope2_admin_01.png|}}




===== Liens =====

  * [[http://www.zope.org|Le site du projet Zope]]
  * [[http://www.plope.com/Books/2_7Edition|Zope 2.9 Documentation]] [EN]
  * [[http://www.zopera.org/|Le portail Zope francophone]]
  * [[http://www.plone.org|Le site de Plone]]

----

//Contributeurs : [[:utilisateurs:tbonacco|Thomas]] ([[https://wiki.ubuntu.com/ZopeOnUbuntu|traduction originale]]), [[:utilisateurs:sunwukong|SunWukong]], [[:utilisateurs:rorist|Rorist]].//